﻿
const drugs_baseinfo = require("../../database/controllers/drugs_baseinfo.controller.js");
  
var router = require("express").Router();
/**
 * @apiDefine drugs_baseinfo 药品基本信息表
 */

/**
 * 
 * @api {post} /api/drugs_baseinfo 添加
 * @apiName drugs_baseinfo.create
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * 
 * 
 * @apiParam  {String} pid  body参数|父菜单
 * @apiParam  {String} menu  body参数|菜单名
 * @apiParam  {String} url  body参数|状态
 */
// Create one
router.post("/", drugs_baseinfo.create);


/**
 * 
 * @api {post} /api/drugs_baseinfo/all 添加(全部)
 * @apiName drugs_baseinfo.createAll
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * 
 * @apiParam  {String} pid  body参数|父菜单
 * @apiParam  {String} menu  body参数|菜单名
 * @apiParam  {String} url  body参数|状态
 * 
 */
router.post("/all", drugs_baseinfo.createAll);


/**
 * 
 * @api {get} /api/drugs_baseinfo 获取全部
 * @apiName drugs_baseinfo.findAll
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * @apiParam  {String} mode query参数（可选）|检索模式有all、hiden、default三种，默认为default,不检索软删除的项目
 * @apiParam  {String} limit query参数（可选）|检索并取回的数据条目数
 * @apiParam  {String} offset query参数（可选）|跳过多少条记录开始检索
 * 
 */
// Retrieve all
// Retrieve all by limit(default 10) and offset(default=0)
router.get("/", drugs_baseinfo.findAll);


/**
 * 
 * @api {get} /api/drugs_baseinfo/:id 通过id获取
 * @apiName drugs_baseinfo.findOne
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * @apiParam  {String} mode query参数（可选）|检索模式有all、default两种，默认为default,不检索软删除的项目
 * @apiParam  {String} limit query参数（可选）|检索并取回的数据条目数
 * @apiParam  {String} offset query参数（可选）|跳过多少条记录开始检索
 * @apiParam  {Number} id params参数（必选）|检索项目的id
 * 
 */
// Retrieve a single One with id
router.get("/:id", drugs_baseinfo.findOne);


/**
 * 
 * @api {get} /api/drugs_baseinfo/:attr/:value 通过属性字段获取
 * @apiName drugs_baseinfo.findByAttr
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * @apiParam  {String} mode query参数（可选）|检索模式有all、hiden、default三种，默认为default,不检索软删除的项目
 * @apiParam  {String} limit query参数（可选）|检索并取回的数据条目数
 * @apiParam  {String} offset query参数（可选）|跳过多少条记录开始检索
 * @apiParam  {String} attr params参数（可选）|属性字段名
 * @apiParam  {String} value params参数（可选）|字段值
 * 
 */
// Retrieve all  with attr and value
router.get("/:attr/:value", drugs_baseinfo.findByAttr);


/**
 * 
 * @api {put} /api/drugs_baseinfo 更新(全部)
 * @apiName drugs_baseinfo.updateAll
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * 
 * @apiParam  {String} pid  body参数|父菜单
 * @apiParam  {String} menu  body参数|菜单名
 * @apiParam  {String} url  body参数|状态
 * 
 */
// Update all with id
router.put("/", drugs_baseinfo.updateAll);


/**
 * 
 * @api {put} /api/drugs_baseinfo/:id 通过id更新
 * @apiName drugs_baseinfo.update
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * 
 * @apiParam  {Number} id params参数（必选）|检索项目的id
 * 
 * @apiParam  {String} pid  body参数|父菜单
 * @apiParam  {String} menu  body参数|菜单名
 * @apiParam  {String} url  body参数|状态
 * 
 */
router.put("/:id", drugs_baseinfo.update);


/**
 * 
 * @api {put} /api/drugs_baseinfo/:attr/:value 通过属性字段更新
 * @apiName drugs_baseinfo.updateByAttr
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * 
 * @apiParam  {String} mode query参数（可选）|检索模式有all、hiden、default三种，默认为default,不检索软删除的项目
 * @apiParam  {String} attr params参数（可选）|属性字段名
 * @apiParam  {String} value params参数（可选）|字段值
 * 
 * @apiParam  {String} pid  body参数|父菜单
 * @apiParam  {String} menu  body参数|菜单名
 * @apiParam  {String} url  body参数|状态
 * 
 * 
 */
// Update all with attr and value
router.put("/:attr/:value", drugs_baseinfo.updateByAttr);


/**
 * 
 * @api {delete} /api/drugs_baseinfo/:id 通过id删除
 * @apiName drugs_baseinfo.delete
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * @apiParam  {Boolean} mode query参数（可选）|检索模式有true、false种，默认为false,执行软删除，否则执行硬删除
 * @apiParam  {Number} id params参数（必选）|检索项目的id
 * 
 */
// Delete a Admin_group with id(mode=false)
router.delete("/:id", drugs_baseinfo.delete);


/**
 * 
 * @api {delete} /api/drugs_baseinfo 删除全部
 * @apiName drugs_baseinfo.deleteAll
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * @apiParam  {Boolean} mode query参数（可选）|检索模式有true、false种，默认为false,执行软删除，否则执行硬删除
 * 
 */
// Delete all Admin_group(mode=false)
router.delete("/", drugs_baseinfo.deleteAll);


/**
 * 
 * @api {delete} /api/admin_group/:attr/:value 通过字段删除
 * @apiName admin_group.deleteAllByAttr
 * @apiGroup admin_group
 * @apiVersion  1.0.0
 * @apiParam  {Boolean} mode query参数（可选）|检索模式有true、false种，默认为false,执行软删除，否则执行硬删除
 * @apiParam  {String} attr params参数（可选）|属性字段名
 * @apiParam  {String} value params参数（可选）|字段值
 */
// Delete all Admin_group with attr and value(mode=false)
router.delete("/:attr/:value", drugs_baseinfo.deleteAllByAttr);


/**
 * 
 * @api {post} /api/drugs_baseinfo/restore/:id 通过id恢复
 * @apiName drugs_baseinfo.restore
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * @apiParam  {Number} id params参数（必选）|检索项目的id
 * 
 */
// Restore softdeleted items by id
router.post('/restore/:id',drugs_baseinfo.restore);


/**
 * 
 * @api {post} /api/drugs_baseinfo 恢复全部
 * @apiName drugs_baseinfo.restoreAll
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * @apiParam  {Array} ids body参数（可选）|要恢复的id数组
 * 
 */
// Restore softdeleted items by ids
router.post('/restore',drugs_baseinfo.restoreAll);


/**
 * 
 * @api {post} /api/drugs_baseinfo/restore/:attr/:value 通过属性和字段值恢复
 * @apiName drugs_baseinfo.restoreAllByAttr
 * @apiGroup drugs_baseinfo
 * @apiVersion  1.0.0
 * @apiParam  {Array} ids body参数（可选）|要恢复的id数组
 * 
 */
// Restore softdeleted items by attr
router.post('/restore/:attr/:value',drugs_baseinfo.restoreAllByAttr);

module.exports = router;
